import type { Slots } from 'vue'

export function getSlot(slots: Slots, slot = 'default', data?: Recordable) {
  const isFunction = typeof slots[slot] === 'function'
  // Reflect.has 判断一个对象是否存在某个属性
  if (!slots || !Reflect.has(slots, slot))
    return null

  if (!isFunction) {
    console.error(`${slot} is not a function!`)
    return null
  }
  const slotFn = slots[slot]
  if (!slotFn)
    return null
  return slotFn(data)
}
